.TH std::default_initializable 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::default_initializable \- std::default_initializable

.SH Synopsis
   Defined in header <concepts>
   template< class T >

   concept default_initializable = std::constructible_from<T> &&          \fI(since C++20)\fP
   requires { T{}; } &&

                                   /* T t; is well-formed, see below */;

   The default_initializable concept checks whether variables of type T can be

     * value-initialized (T() is well-formed);
     * direct-list-initialized from an empty initializer list (T{} is well-formed); and
     * default-initialized (T t; is well-formed).

   Access checking is performed as if in a context unrelated to T. Only the validity of
   the immediate context of the variable initialization is considered.

.SH Possible implementation

   template<class T>
   concept default_initializable =
       std::constructible_from<T> &&
       requires { T{}; } &&
       requires { ::new T; };

.SH See also

                                      specifies that a variable of the type can be
   constructible_from                 constructed from or bound to a set of argument
   (C++20)                            types
                                      (concept)
   is_default_constructible
   is_trivially_default_constructible
   is_nothrow_default_constructible   checks if a type has a default constructor
   \fI(C++11)\fP                            \fI(class template)\fP
   \fI(C++11)\fP
   \fI(C++11)\fP
